import React, { Component } from 'react'
// rcc => React Class Component

// !1. 给按钮绑定点击事件
// ?2. 获取原来的数字
// 3. 在原来的基础上 +1

export default class App extends Component {
  state = {
    count: 0,
  }
  // 高阶函数：参数是函数的函数，或者返回值是函数的函数，arr.map(() => {})
  // 编码形式：函数柯里化，通过函数调用继续返回函数，实现多次接受参数最后统一处理的编码形式
  handleClick(a) {
    // 由于外部调用的时候 this.handleClick() 所以这里的handleClick就是render 中的 this 调用，就是 实例
    // console.log(this)
    return (e) => {
      // this => 是谁？箭头函数的 this 指向父级
      // console.log(this)
      // 终于获取到原来的数字了
      // if (a === 1) console.log(e)
      console.log(this.state.count)
    }
  }
  render() {
    return (
      <div style={{ textAlign: 'center' }}>
        <h3>计数器：{this.state.count}</h3>
        {/* 之所以点击的时候执行的是 undefined，是因为函数如果没有 return 默认返回的就是 undefined */}
        {/* 咱真正期望点击的时候执行的是一个函数 */}
        <button onClick={this.handleClick(1)}>+1</button>
      </div>
    )
  }
}
